home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
021-030
/
amok30
/
m2maker
/
m2maker.doc
< prev
next >
Wrap
Text File
|
1993-11-04
|
11KB
|
324 lines
----------------------------------------------------------------
Das Programm m2Maker ist ein in Modula-2 geschriebenes Utilitie,
welches besonders auf den Compiler von Meier Vogt zugeschnitten
ist.
Da ich glaube, das dieses Programm vielen Programmierern eine
kleine Hilfe ist, habe ich mich entschlossen es als "Shareware"
zu veröffentlichen.
Das heißt, jeder darf dieses Programm kopieren, tauschen und
weiterverbreiten. Kommerzielle Vermarktung ist hiervon
ausdrücklich ausgenommen.
Wem dieses Programm zusagt, kann mir einen Betrag in beliebiger
Höhe (so 20 DM,- oder mehr...) auf mein Konto
Stadtsparkasse Hannover Nr. 14561514
BLZ 250 501 80
überweisen.
Thomas Stolze
Goslarsche Str .32
3000 Hannover 21
P.S.: Anregungen und Fehlerberichte sind immer willkommen.
Bitte diese Informationen nicht löschen.
----------------------------------------------------------------
Die Programme Fastlister und MODULETool sind Bestandteile des
m2Maker.
Ich beabsichtige das MODULETool noch stark zu erweitern. Daher sollte
das vorliegende Programm als Vorabversion verstanden werden.
----------------------------------------------------------------
Die Installation der Programme:
m2Maker:
Der m2Maker muß im selben Verzeichnis liegen wie Compiler,
Linker, Editor und das m2Projekt-Programm (siehe Handbuch!).
Außerdem müssen sich folgende Programme auf der Systemdiskette im
c-Verzeichnis befinden:
- Run
- Execute
- NewShell
- Copy
Die Funktionen im einzelnen:
Die Gadgets:
Editor - Ruft den Editor auf.
Compiler - Ruft den Compiler auf.
Wenn ein Fehler gefunden wurde wird automatisch
der Editor aufgerufen.
Linker - Ruft den Linker auf.
Run - Startet ein fertig compiliertes und gelinktes File.
Make - Ruft Compiler,Linker und Run auf.
Tritt nach dem compilieren ein Fehler auf, so wird
der Editor aufgerufen.
Projekt - Wenn mann ein Projekt definiert hat (s.u.), wird
dieses initialisiert. Jetzt werden alle Dateien,
die Editor,Compiler,Linker und Debugger erzeugen
in entsprechene Unterverzeichnisse geschrieben.
Dies hilft die Übersichtlichkeit zu erhöhen.
(Detailierte Informationen stehen im M2-Handbuch)
Durch erneutes anklicken wird das Projekt beendet.
Wenn man ein neues Projekt beginnen möchte, muß das
alte eventuell erst beendet werden.
Optionen - Hier können die Optionen von Editor,Compiler und
Linker gesetzt werden.
Außerdem kann hier das Verzeichnis angegeben werden
mit dem der FastLister arbeitet.
Print - Druckt die aktuelle Datei aus. Ein geeigneter
Druckertreiber muß sich aber im devs/printer Unter-
verzeichnis befinden.
Copy - Kopiert die aktuelle Datei auf das Backupmedium.
Befindet man sich im Projektmodus, so wird auch
auf dem Backupmedium ein Projektverzeichnis erzeugt
wenn dort kein entsprechenes existiert.
Load Opt
Save Opt - Lädt oder speichert die aktuellen Parameter in der
Datei m2Maker.par.
Clear - Löscht die beiden oberen TextGadgets und setzt die
Optionen auf ihre Standartstellungen. Als Backup-
medium wird 'df1:' voreingestellt.
New - Um eine neue Datei zuerzeugen, die zu einem Projekt
gehört, muß dieses Gadget angeklickt werden.
Dies kann man auch durch Eingeben eines neuen
Dateinamens in das Editortextgadget erreichen.
Mod - Ruft das MODULETool auf.
Delete - Löscht die aktuelle Datei nach einer Sicherheitsab-
frage.
Directory - Lädt das aktuelle Verzeichnis.
Die Textgadgets lassen sich durch anklicken beliebig verändern.
Im oberen Textgadget befindet sich der Name des fertigen
Programms, während im unteren der gleiche Name mit einer Endung
(".mod",".def") steht, den der Editor benötigt.
In dem rot umrahmten Kasten befindet sich das Textgadget mit dem
Backuppfad und der Pfad zum aktuellen Projekt.
Unter dem Inhaltsverzeichnis befindet sich das Textgadget,
welches den aktuellen Pfad enthält.
Um das Laufwerk zu ändern, muß hier der neue Pfad
eingetragen werden.
Inhaltsverzeichnis:
Durch Anklicken eines Namens wird diese Datei zur aktuellen
erklärt und in den mittleren Textgadgets sichtbar.
Unterverzeichnisse werden rot angezeigt.
Klickt man diese an, so wird das jeweilige Unterverzeichnis
geladen.
In Unterverzeichnissen wird an oberster Stelle der Eintrag
"PARENT\" hinzugefügt.
Durch Anklicken kommt man wieder eine Verzeichnisebene höher.
Die Daten werden, Verzeichnisse zuerst, alphabetisch sortiert
angezeigt.
Durch Anklicken des rechten Proportionalgadgets oder der Pfeile
kann man die verdeckten Einträge sichtbar machen.
Das Menü:
- Projekt
- Requester mit Copyright Vermerk.
- Option. sorgt für ein automatisches abspeichern vor
jedem "Run".
- Speichert das gesamte Projektverzeichnis mit allen
Unterverzeichnissen auf dem Backupmedium.
- Ruft ein neues CLI auf.
- Beendet das Programm.
- m2Maker
- Ruft den Editor auf.
- Ruft den Compiler auf.
- Ruft den Linker auf.
- Startet das fertige Programm.
- Startet die Make-Funktion.
- Compiliert alle Dateien die in der aktuellen Datei
enthalten sind.
Wenn die Reihenfolge der Dateinamen ihrer
Abhängigkeit voneinander entspricht, kann ein eventuell
auftetenes Schlüsselproblem (z.B. durch Änderung eines
DefinitionsModules) gelöst werden.
Der Dateiname muß auf jeden Fall mit dem Index ".mke"
enden!
- Optionen
- Lädt Optionen.
- Lädt Parameter.
- Speichert Parameter.
- Dos
- Löscht die aktuelle Datei nach einer Sicherheits-
abfrage.
- Datei umbenennen.
Nachdem der "m2Maker" ordnungsgemäß vom CLI mit "Run m2Maker"
gestartet worden ist, werden die Parameter aus der Datei
"m2Maker.par" gelesen, sofern diese vorhanden ist.
Außerdem wird nach einer Datei mit dem Namen "m2Maker.exec"
gesucht. Diese Datei wird nach dem Starten automatisch
abgearbeitet.
Diese Batchdatei ist dazu gedacht, automatisch die notwendige
Programmierumgebung herzustellen, wie z.B. das Kopieren aller
notwendigen Programme von einer Harddisk in die RAM-Disk.
An dieser Stelle sei darauf hingewiesen, daß das Programm mit
Hilfe von IconX auch von der Workbench gestartet werden kann.
Compiler und Linker arbeiten im Projektmodus nur mit Dateien, die
sich in den entsprechenen Projektunterverzeichnissen befinden,
während der Editor davon unabhängig arbeitet.
Die Auswahl der zu bearbeitenen Datei kann auch mit Hilfe der
Cursortasten erfolgen. (Auswahl mit anschließendem Return)
----------------------------------------------------------------
MODULETool:
Das MODULETool ist ein Utilitie, welches automatisch
Definitionsmodule erzeugt.
Davon ausgehend, das man zunächst ein Module zu Testzwecken
normal entwickelt, um dies später in ein Implementations Module
umzuwandeln, ist dieses Programm dazu gedacht, dies mit Hilfe
eines Programm zu tun.
Da bereits alle Informationen, die ein Definitions Module
benötigt im Hauptmodule vorhanden sind, ist dies problemlos
möglich.
Es werden alle Globalen Typen und Konstanten ins Definitions
Module übertragen und die Prozedurköpfe herausgesucht.
Außerdem ist es möglich die Importliste alphabetisch zu sortieren
und von unnötigen Einträgen zu befreien.
!!! Achtung !!!
Es macht nur Sinn ein syntaktisch korrektes Programm zu
bearbeiten. Außerdem dürfen keine lokalen Module in der Datei
vorkommen.
Das Moduletool kann entweder von der Workbench oder vom CLI
aufgerufen werden (vom m2Maker mit F8 oder Mod).
Durch Anklicken einer Datei mit Hilfe der Shifttaste und des
Moduletoolicons wird der Pfad automatisch erstellt, sonst muß er
eingegeben werden. Vom CLI aus kann man den Dateinamen ebenfalls
mitangeben.
Die Funktionen:
Speed: Es werden die Compileroptionen zur Vermeidung des
Prüfcodes gesetzt.
Kopf: Es wird vor den Quelltext ein Kopf gesetzt, der Datum
und Uhrzeit enthält.
Block: Die Importelemente werden ganzzeilig unter den
Importnamen gesetzt, sonst richtet sich die Ausrichtung
nach der Länge des längsten Importnamens.
ausortieren : Unnötige Elemente werden aussortiert.
Da als Kriterium die Häufigkeit des Vorkommens
ausschlaggebend ist, kommt es bei den Flagnamen
vor, das sie aussortiert werden.
Folgende Ausnahmebehandlung wird durchgeführt:
Da die meisten Flagnamen auf "s" enden wird
überprüft ob ein Set gleichen Namens vorhanden ist
und dann nicht aussortiert.
Beispiel: WindowFlags => WindowFlagSet
MemReqs => MemReqSet
Dadurch werden fast alle Systemflags richtig
behandelt.
Ausnahmen werden leider nicht erkannt.
z.B.:
"Response" aus FileSystem => Set existiert nicht.
Bei der Definition von eigenen Typen sollte daher
beachtet werden, daß die Typen auf "s" enden.
Leerzeile: Sortiert unnötige Leerzeilen aus.
Backup: Erstellt eine Sicherheitskopie unter dem Namen der
Datei und hängt ein O an (wie m2Emacs).
DefMod: Erstellt ein Definitions- und Implementationsmodul,
falls die Quelldatei ein normales Modul ist.
Außerdem werden aus der Quelldatei immer unnötige Leerzeichen
entfernt.
Über das Menu kann man außerdem wählen,ob
das Doppelkreuz,die Tilde und das Undzeichen durch ihre
Äquivalente ersetzt werden sollen oder nicht.
# => <>
& => AND
~ => NOT
----------------------------------------------------------------
Fastlister:
Der Fastlister wird vom m2Maker initialisiert und läuft im
Hintergrund. Es wird mit dem unter m2Maker ==> Optionen stehendem
Verzeichnis gearbeitet. Durch drücken der Tastenkombination
leftShift, CTRL, Help wird dieser aktiviert.
Zunächst werden alle Dateien die im angegebenen Verzeichnis
liegen aufgelistet. Nach Eingabe der Dateinummer wird die Datei
angezeigt.
Mit Hilfe der Cursortasten ist das Durchblättern durch die Datei
möglich. Mit "Return" verläßt man den Fastlister oder durch
Drücken der Helptaste kommt man wieder zurück zur Auswahl. Diese
kann man mit ESC verlassen.
Das Programm kann durch lShift, CTRL, ESC vorzeitigt beendet
werden. Ansonsten wird es beim Beenden vom m2Maker automatisch
gelöscht.
Das Programm ist dazu gedacht, ein häufiges verlassen des Editors
zu vermeiden, nur um "mal schnell" nach einer bestimmten
Definition in einer anderen Datei zu suchen.
Viel Spaß beim Arbeiten mit dem m2Maker.
Thomas Stolze